home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / MENU_UTL / PULL70B / GOOF.PAS < prev    next >
Pascal/Delphi Source File  |  1993-09-24  |  2KB  |  80 lines

  1. { ========================================================================== }
  2. { Goof.pas - Displays fatal programming errors            ver 7.0b, 09-24-93 }
  3. {                                                                            }
  4. { This file contains a convenient way to alert you of programming errors     }
  5. { since it is possible to create unseen errors with virtual and hidden       }
  6. { windows.  You can edit and recompile this unit at any time since it is     }
  7. { a circular call.                                                           }
  8. {   Copyright (C) 1993 by James H. LeMay,  All rights reserved.              }
  9. { ========================================================================== }
  10.  
  11. {$A-,B-,F-,P-,Q-,R-,S-,T-,V-,X+}
  12.  
  13. { Set $D+ in your compiler if you want to see the error messages at run time.}
  14.  
  15.  
  16. UNIT Goof;
  17.  
  18. INTERFACE
  19.  
  20. procedure ShowGoof (ErrorNum: byte);
  21.  
  22.  
  23. IMPLEMENTATION
  24.  
  25. uses
  26.   Qwik, Wndw;
  27.  
  28. procedure ShowGoof; { (ErrorNum: byte); }
  29. type
  30.   Str41 = string[41];
  31. var
  32.   Msg1,Msg2,MemS,MaxS: Str41;
  33. begin
  34. {$ifopt D+ }
  35.   Msg2 := '';
  36.   case ErrorNum of
  37.     1: begin
  38.          Msg1 := 'Not enough Heap space!';
  39.          Str (memavail,MemS);
  40.          Str (maxavail,MaxS);
  41.          Msg2 := 'Mem='+MemS+'/'+'Max='+MaxS;
  42.        end;
  43.     2: Msg1 := 'Too many Windows!';
  44.      {$ifdef AddVirtual }
  45.     3: Msg1 := 'Too many Virtual Windows!';
  46.      {$endif }
  47.     4: Msg1 := 'Perm window out of order!';
  48.     5: Msg1 := 'No window to remove!';
  49.     6: Msg1 := 'Hidden window not found!';
  50.      {$ifdef AddVirtual }
  51.     7: Msg1 := 'Virtual screen not found!';
  52.      {$endif }
  53.      {$ifdef MultiPage }
  54.     8: Msg1 := 'Video page not available!';
  55.      {$endif }
  56.    10: Msg1 := 'A Submenu could not fit!';
  57.   end;
  58. {$endif }
  59.   TopWndwStat := WndwStat[0];   { Get original CRT stat }
  60.   QScrRec := TWS.VScrRec;       { Set Qwik stats }
  61.    {$ifdef MultiPage }
  62.   QwritePage (0);               { Ensure we are writing to page 0 }
  63.   QviewPage (0);                { Ensure we are viewing page 0 }
  64.    {$endif }
  65.   LI  := 0;                     { Set top window level }
  66.   HLI := 2;                     { Prevent index conflict }
  67.   WindowModes := RelMode;
  68.   MakeWindow (0,0,5,42,LightGrayBG,LightGrayBG+Blink,DoubleBrdr,aWindow);
  69. {$ifopt D+ }
  70.   WWriteC (1,Msg1);
  71.   WWriteC (2,Msg2);
  72. {$endif }
  73.   WWriteC (3,'Program halted.');
  74.   GotoRC (CrtRows-1,1);
  75.   SetCursor (CursorInitial);
  76.   Halt;
  77. end;
  78.  
  79. END.
  80.